能否用中文写代码? 您所在的位置:网站首页 literal 中文 能否用中文写代码?

能否用中文写代码?

2023-04-06 18:34| 来源: 网络整理| 查看: 265

是这意思?

“获取出生年大于2000的读者的邮箱、昵称,按出生年倒序排列。”

可转为 SQL 语句:

SELECT 邮箱, 昵称 FROM 读者 WHERE 出生年 > 2000 ORDER BY 出生年 DESC;

建议放开想象空间,各种数据格式都可看作某种 DSL,比如 XML、JSON。

以此为例,将json和xml的内容中文化后:

{"员工":[ { "名":"John", "姓":"Doe" }, { "名":"Anna", "姓":"Smith" }, { "名":"Peter", "姓":"Jones" } ]}

XML:

John Doe Anna Smith Peter Jones

借鉴中文语法的一种语言设计,这里的“三位”可以省去,也可以用于校验数据完整性,与自然语言类似;名、姓两个属性名不需重复三次;按自然语言习惯,默认所有值为字符串类型,可以额外指定其他类型如数值等:

三位员工, 名、姓为 John、Doe, Anna、Smith, Peter、Jones

同样值得关注的,是数据出现格式错误时的反馈信息如何设计。

JSON 的解析报错信息中,小半与支持的数据格式有关:

## 指数

SyntaxError: JSON.parse: missing digits after exponent indicatorSyntaxError: JSON.parse: missing digits after exponent signSyntaxError: JSON.parse: exponent part is missing a number

## 字符串

SyntaxError: JSON.parse: unterminated string literalSyntaxError: JSON.parse: bad control character in string literalSyntaxError: JSON.parse: bad character in string literalSyntaxError: JSON.parse: bad Unicode escapeSyntaxError: JSON.parse: bad escape characterSyntaxError: JSON.parse: unterminated string

## 小数 分数 负数格式

SyntaxError: JSON.parse: missing digits after decimal pointSyntaxError: JSON.parse: unterminated fractional numberSyntaxError: JSON.parse: no number after minus sign

余下的二十个左右多数与它的几个核心概念有关:

keywordobjectproperty name/value

属性名必须用双引号,相关报错有:SyntaxError: JSON.parse: expected double-quoted property nameSyntaxError: JSON.parse: property names must be double-quoted strings

这一限制在上面的中文设计中没有,即不需特殊符号标记属性名。

还有属性值后必须是逗号或者 } 结束,相关报错有:

SyntaxError: JSON.parse: end of data after property value in objectSyntaxError: JSON.parse: expected ',' or '}' after property value in objectSyntaxError: JSON.parse: expected ',' or '}' after property-value pair in object literal

中文设计中,每条数据之间如果已经分行或空格,逗号分隔可以省去。

比如:

JSON.parse('{"员工": [{ "名":"John", "姓":"Doe" s}]}') Uncaught SyntaxError: JSON.parse: expected ',' or '}' after property value in object at line 1 column 33 of the JSON data

如果中文:

一位员工, 名、姓为 John、Doe s

如果把空格后的s识别为另一条数据,那么可以这样报警:

第二位员工的名为s,姓为空,是吗?与“一位”员工矛盾。

反馈信息尽量业务相关,而不是仅告知“这么写就错了”。而且尽量对用户的输入格式尽量”宽容“。

【待续】



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有